x86 mce: fix a few possible issues
authorKeir Fraser <keir.fraser@citrix.com>
Thu, 9 Apr 2009 07:41:28 +0000 (08:41 +0100)
committerKeir Fraser <keir.fraser@citrix.com>
Thu, 9 Apr 2009 07:41:28 +0000 (08:41 +0100)
commit7d20f72ca3a521699b5231d1a61656eb18424421
tree7fe7d3b687915a50b93d080f174b0742e4148363
parent11e1149fe08e2e9a478696cc1c3b331e6b8e4efa
x86 mce: fix a few possible issues

Do not share synchronization variables between the trap handler and
the softirq handler, as this will cause problems. Abstract the
synchronization bits into functions. Make the synchronization code
aware of a panic, so that spinning with interrupts disabled is
avoided.

To avoid problems with MCEs happening while we're doing recovery
actions in the softirq handler, implement a deferred list of telemetry
structures, using the mctelem interfaces. Thist list will get updated
atomically, so any additional MCEs will not cause error telemetry to
be missed or not handled.

Signed-off-by: Frank van der Linden <frank.vanderlinden@sun.com>
Signed-off-by: Liping Ke <liping.ke@intel.com>
Signed-off-by: Yunhong Jiang<yunhong.jiang@intel.com>
xen/arch/x86/cpu/mcheck/mce.c
xen/arch/x86/cpu/mcheck/mce.h
xen/arch/x86/cpu/mcheck/mce_intel.c
xen/arch/x86/cpu/mcheck/mctelem.c
xen/arch/x86/cpu/mcheck/mctelem.h
xen/include/asm-x86/domain.h